<%--
  Created by IntelliJ IDEA.
  User: teacher
  Date: 2023/7/3
  Time: 13:31
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>四大作用域</title>
</head>
<body>
<%
    // 模拟存储数据
    pageContext.setAttribute("msg","Hello pageContext");
    request.setAttribute("msg","Hello request");
    session.setAttribute("msg","Hello session");
    application.setAttribute("msg","Hello application");
%>
<h1>当前页面</h1>
pageContext:<%=pageContext.getAttribute("msg")%><br>
request:<%=request.getAttribute("msg")%><br>
session:<%=session.getAttribute("msg")%><br>
application:<%=application.getAttribute("msg")%><br>
<%
    // 转发到另一个页面
    // 转发之后不是同一个页面,但是共享了请求
    // 因此,pageContext数据丢失,其他作用域数据没有丢失
    // request.getRequestDispatcher("/jsp/scope2.jsp").forward(request,response);

    // 重定向到另一个页面
    // 重定向之后不是同一个请求,request数据丢失
    // 此时session与application数据仍然存在
    // 但是当会话结束之后,直接访问重定向之后的页面时session的数据丢失
    // application的数据只要服务器不重启,数据一直存在
    // 但是当服务器重启之后直接访问重定向之后的页面时数据丢失
    response.sendRedirect(request.getContextPath()+"/jsp/scope2.jsp");
%>
</body>
</html>
